package com.sp.mapper;

import com.sp.model.entity.Permission;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 管理员角色 与 具体权限 中间表 Mapper
 *
 * @author tong
 * @date 2024/4/13 21:23
 */
@Mapper
public interface EmployeeRoleAndPermissionMapper {

    /**
     * 根据权限角色id查找拥有具体权限
     *
     * @param roleId
     * @return
     */
    List<Permission> selectPermissionByRoleId(@Param("roleId") Integer roleId);

    /**
     * 添加权限角色与具体权限关联
     *
     * @param roleId
     * @param permissionIds
     * @return
     */
    int add(@Param("roleId") Integer roleId, @Param("permissionIds") List<Integer> permissionIds);

    /**
     * 根据权限角色id删除与具体权限关联
     *
     * @param roleId
     * @return
     */
    int deleteByRoleId(@Param("roleId") Integer roleId);

    /**
     * 根据权限角色id列表删除与具体权限关联
     *
     * @param roleIds
     * @return
     */
    int deleteByRoleIds(List<Integer> roleIds);

    /**
     * 统计与具体权限关联的权限角色数量
     *
     * @param permissionId
     * @return
     */
    int countByPermissionId(@Param("permissionId") Integer permissionId);

}
